Caso de estudio | Iflow

Fecha de publicación

Invalid Date

1 Introducción

En el marco del Primer Desafío Internacional de la Red Latinoamericana de Ciencia de Datos, este análisis tiene como propósito abordar un problema práctico del ámbito logístico. El proyecto promueve la colaboración entre estudiantes de diversas universidades latinoamericanas, fomentando el trabajo en equipo y la toma de decisiones basadas en datos reales.

El objeto de estudio es un conjunto de datos proporcionado por iFlow, una empresa argentina especializada en logística integral, con operaciones tanto nacionales como internacionales dentro del MERCOSUR. iFlow se dedica a la gestión y co-gerencia de cadenas de abastecimiento para sus clientes, buscando optimizar procesos y mejorar la eficiencia operativa.

Este análisis tiene como objetivo:

  1. Comprender y describir las principales características del conjunto de datos, que incluye registros de entregas realizadas en un período de tres meses.

  2. Identificar patrones y tendencias que permitan obtener insights relevantes sobre las operaciones de iFlow.

  3. Detectar posibles inconsistencias o errores en la base de datos, propias de un entorno operativo real, para evaluarlas e integrarlas al análisis.

2 Limpieza de datos.

La primera etapa de este análisis consistió en la limpieza de datos. Este proceso de limpieza fue clave para preparar los datos para un análisis exploratorio robusto y la generación de insights confiables sobre la operación logística de iFlow.

En primer lugar realizamos algunos cambios para facilitar el trabajo con los datos.

  • Tratar Columnas innecesarias

    La columna InicioVisitaPlanificado y FinVisitaPlanificado contienen los mismos valores por lo que las unificamos en una nueva columna.

  • Formatear correctamente las variables
  • Renombrar las columnas por nombres intuitivos.

Con estos cambios realizados pasamos a modificaciones y arreglos necesarios para un análisis correcto de los datos.

  • Eliminación de filas duplicadas.
  • Arreglo de coordenadas faltantes en algunas entregas.

    El dato de coordenadas en algunas filas estaba vacio o indicaba “0”. En algunos de estos casos pudimos rellenar estas coordenadas con datos existentes del domicilio (21 filas). En caso de que esto no sea posible las filas fueron eliminadas (19 filas) y no serán tomadas en cuenta para el análisis.

Por último creamos algunas nuevas columnas para distintos análisis. Entre estas algunas columnas para facilitar la interacción con fechas y horarios de entregas.

3 Vista general.

En esta sección ofrecemos una visión superficial de los datos, brindando un panorama inicial que permite familiarizarnos con su estructura y contenido.

Se registraron 27.419 entregas de dos clientes distintos: 16,545 del cliente 20 y 10.874 del cliente 70.

Todas estas entregas fueron realizadas entre el 3 de mayo y 8 de agosto de 2024, con un promedio de 9.005 entregas por mes

Este gráfico de barras muestra la cantidad de entregas realizadas cada mes, separadas por cliente. Las barras están agrupadas por mes y se distinguen por colores para cada cliente.

La cantidad de entregas es constante entre mayo y julio, con algunas variaciones entre los clientes. Esto indica un comportamiento predecible en la demanda mensual. Planificar recursos en función de estos patrones puede mejorar la eficiencia operativa.

En este gráfico se visualiza la cantidad total de entregas realizadas por mes, sin importar el cliente.

n patrón estable en el número de entregas permite predecir la demanda mensual. Las caídas pueden ser analizadas más adelante para identificar feriados o problemas en la operación.

3.1 ¿Cuales son los horarios de entrega?

Este gráfico de calor muestra la cantidad de entregas realizadas según la hora del día y el día de la semana. Cada celda del gráfico representa un cruce entre una hora y un día, con colores más intensos indicando una mayor cantidad de entregas.

Mayor actividad: El miércoles alrededor de las 15:00 es el momento con más entregas. Patrón semanal: Hay menos actividad los fines de semana, especialmente los domingos, donde casi no se registran entregas.

Vemos que el domingo hay solo 3 entregas. Esto podría deberse a un error por lo que las revisamos.

Orden Localidad Fecha y hora de entrega
81943 CAPITAL FEDERAL 2024-07-21 23:51:00
100968 CAPITAL FEDERAL 2024-07-21 23:51:00
100968 CAPITAL FEDERAL 2024-07-21 23:51:00

Al revisar estas entregas encontramos que las tres fueron entregadas a las 23:51. Esto podría deberse a un error en la carga de datos o a entregas especiales. Al ser las últimas entregas del día puede deberse a un cierre automático del sistema despues de haber dejado entregas inciadas el día anterior sin marcar su finalización.

Si bien este parece ser un caso puntual existen dos grandes problemas respecto a los horarios y duración de las entregas. Estos problemas son.

  1. Duración de las entregas: Muchas entregas tienen el mismo horario de inicio y fin. Esto puede deberse a errores en la carga de datos o a un sistema de carga poco eficiente.

  2. Entregas consecutivas: Muchas entregas consecutivas fueron cargadas con el horario de la entrega anterior. Esto dificulta la identificación de rutas, estimación de tiempos muertos y duraciones reales entre entregas.

3.2 Errores de carga en horarios de entrega.

Notamos que en las entregas muy cercanas geograficamente, en la misma cuadra, suelen tener el mismo horario de finalización. Esto se puede deber a que los operarios olvidan hacer la carga individual o consideran mas rapido completar ambas entregas antes de registrarlo en el sistema.

Junto con los errores de carga en los horarios de entrega este puede ser un segundo indicador de que el sistema de carga puede ser mejorado para no recolectar datos erroneos en el futuro.

Horarios cargados de forma incorrecta podrian causar:

  1. Mala estimación sobre tiempos muertos.
  2. Dificulta optimizar los procesos de entrega.
  3. Perjudica la proyección de horarios de entregas o ventanas horarias.

Algunas sugerencias e ideas para mejorar esto incluyen:

  • Mejoras de la interfaz en el sistema de carga para facilitar y fomentar su uso.

  • Implementación de un sistema de validación de los datos para evitar duplicados.

  • Desarrollo y uso de hardware específico para la carga de datos.

¿Cuál es el tiempo promedio entre el inicio y fin de las visitas de entrega?

Bien cargados 17142 vs mal cargados 10255 mal. Pero encontramos que son incluso más. Una forma de solucionarlo podría haber sido ordenar las entregas en orden cronologico e intentar estimar la duración real segun el tiempo entre las entregas y la distancia entre ellas pero al intentar esto encontramos que muchas entregas consecutivas arrastran errores. Dificultando la identificación de rutas, estimación de tiempos muertos y duraciones reales entre entregas.

Como referencia, el día 2024-06-27 16:06:00 hay 23 entregas graficadas el mismo día.

¿Que tan frecuente es este error? Muy frecuentes

Se registraron 12,799 entregas con horarios incorrectos, lo que representa el 46.67% de los datos cargados de forma errónea.

Con casi la mitad de los datos poco confiables, cualquier análisis sobre la eficiencia operativa pierde precisión. Esto puede generar errores importantes al evaluar la duración de las entregas, los periodos de actividad y las rutas utilizadas.

Corregir la recopilación de estos datos es una oportunidad clave para mejorar el crecimiento de la empresa, optimizar las ventanas de entrega, identificar cuellos de botella reales y facilitar una toma de decisiones más precisa y efectiva.

“Lo que no se mide, no se puede mejorar.” - Peter F. Drucker

A continuación, se presentan posibles causas y oportunidades para resolver esta situación.

  1. Manual de uso y capacitación sobre el sistema UNIGIS

Basandonos en el Manual de transportistas - Elementos de seguridad y APPS encontramos la siguiente referencia sobre el uso de la aplicación.

Capacitar mejor al personal con mayor cantidad de recursos, claridad en los instructivos y videos demostrando el uso correcto del sistema videos demostrando el uso correcto del sistema mejoraría la precision de la carga de los datos en el futuro.

  1. Creación de una interfaz personalizada para Unigis.

El error de carga de horarios iguales en entregas consecutivas puede deberse principalmente a la dificultad de uso del sistema o poca practicidad del mismo por la que los transportistas podrían saltear los pasos del instructivo.

Si migrar a un nuevo sistema más moderno es una alternativa muy costosa podrían considerar hacer una inversión en desarrollo frontend para, utilizando la API del sistema actual, puedan tener una interfaz más amena a los transportistas.

Referencia del Uso de la API cloud de Unigis

Referencia del Uso de la API cloud de Unigis

El desarrollo de una interfaz personalizada para interactuar con su sistema actual podría ser una inversión considerable pero economica contrastando con la posibilidad de un desarrollo personalizado o la migración a un nuevo sistema.

Algunas consideraciones:

  • Inversión en equipo e investigación UX para asegurar el uso intuitivo de los transportistas. Es importante entender como es el uso del sistema en la practica.
  1. Migrar a un sistema más moderno o diseñar uno a medida para sus necesidades.

    Puede ser la opción mas costosa.

Como conclusión mejorar la capacitación del personal, proporcionando más recursos, instructivos claros y videos demostrativos sobre el uso correcto del sistema, ayudaría a aumentar la precisión en la carga de datos. Además, la creación de una interfaz personalizada para Unigis podría resolver errores comunes, como los horarios idénticos en entregas consecutivas, que probablemente ocurren por la complejidad o poca practicidad del sistema, lo que lleva a los transportistas a omitir pasos. Si migrar a un sistema más moderno resulta demasiado costoso, una opción sería invertir en el desarrollo de un frontend más amigable, utilizando la API del sistema actual, para facilitar su uso y mejorar la experiencia de los transportistas.

3.3 Información de bultos y peso.

En promedio, cada entrega contiene:

  • 28.40 unidades

  • 5.75 bultos

  • 41.15 kg de peso

El peso elevado por pedido sugiere la presencia de productos voluminosos o de alto consumo, lo que puede aumentar los costos de transporte debido a la mayor carga. Esto también tiene implicaciones importantes para la planificación de rutas, ya que es necesario optimizar el uso de los vehículos para evitar sobrecargas y cumplir con los límites de capacidad. Además, la gestión eficiente de estos pedidos requiere ajustar los tiempos de entrega, garantizar la disponibilidad de unidades adecuadas y considerar posibles restricciones en ciertas rutas debido al peso total transportado.

[1] 28.40304

[1] 5.756564

[1] 41.15846

3.4 Distribución geográfica de las entregas.

Como podemos ver este mapa de entregas de la ciudad de Buenos Aires muestra visualmente la dispersión de las entregas en la ciudad. La variedad de colores permite ver qué clientes se agrupan en ciertas áreas. Si ciertos clientes concentran entregas en una región específica, eso puede indicar una demanda localizada o preferencia regional de ciertos productos.

En este mapa las áreas con mayor densidad de entregas resaltan visualmente. Estas zonas de alta actividad pueden representar zonas comerciales o residenciales clave. Esto es útil para optimizar las rutas de entrega y asignar más recursos a zonas con alta demanda.

Para verlo de forma más resumida;

En base a este mapa se permite ver cómo se distribuyen las entregas a nivel de barrio. Los barrios con mayor intensidad de color son aquellos con más entregas, lo que indica la importancia de estos barrios en el volumen de pedidos.

Similar al mapa por barrio, pero agrupando entregas por comunas. Las comunas que presentan más entregas destacan como puntos de interés para analizar el impacto logístico y la demanda concentrada.

Los puntos en el mapa de Buenos Aires representan ubicaciones de entregas, y las áreas con mayor densidad de entregas aparecen con colores más intensos, permitiendo identificar visualmente las zonas con más actividad de entregas.

`summarise()` has grouped output by 'latitud'. You can override using the
`.groups` argument.

3.4.1 Centro de distribución en Mendoza.

¿Cuántas entregas se hicieron fuera del tiempo esperado o planificado?

`summarise()` has grouped output by 'mes'. You can override using the `.groups`
argument.

Este gráfico permite la visualización de la cantidad de entregas por mes, clasificadas en “Tarde” y “Temprano o a Tiempo”.

¿Qué clientes generan más volumen de entregas y cuáles presentan más problemas o irregularidades?

Este mapa permite la visualización de un mapa interactivo que muestra las entregas realizadas, clasificado por cliente, en Buenos Aires.

3.5 Conclusiones

4 Segmentación y patrones en entregas.

El gráfico de barras muestra cuántas entregas ha recibido cada cliente. Cada barra representa a un cliente, y su altura indica el total de entregas realizadas. Así, es fácil comparar rápidamente qué clientes tienen más o menos entregas.

Este gráfico de líneas muestra la cantidad de entregas realizadas a dos clientes específicos (identificados como “20” y “70”) a lo largo de los días de la semana. Cada línea representa a un cliente, permitiendo analizar cómo varían sus entregas día a día.

Podemos observar que el cliente 20 tiene un pico de entregas el miércoles y una disminución notable el jueves, con una ligera recuperación hacia el final de la semana. Por otro lado, el cliente 70 mantiene un comportamiento más estable a lo largo de los días, con pequeñas variaciones pero sin grandes picos o caídas. Esta visualización facilita comparar los patrones de entrega entre ambos clientes y puede ayudar a identificar días de mayor o menor actividad para cada uno.

`summarise()` has grouped output by 'cliente'. You can override using the
`.groups` argument.

Este gráfico de lineas permite la visualización de la cantidad de entregas realizadas por cliente a lo largo de los días de la semana, excluyendo el domingo. Utiliza líneas para representar la evolución del número de entregas para cada cliente, con puntos destacados en cada día.

Total de ordenes con más de una entrega: 5027

Este gráfico permite la visualización de la distribución de la cantidad de entregas por domicilio, mostrando un histograma que representa la frecuencia de entregas para diferentes valores.

Este gráfico de barra permite la visualización de la cantidad de domicilios que han recibido más de una entrega. Utiliza barras para representar el número total de domicilios, distinguiendo entre aquellos que tienen mas de una entrega y los que no.

Este histograma muestra la distribución de la cantidad de entregas por domicilio, permitiendo identificar cuántas veces se realizaron múltiples entregas en un mismo lugar durante un periodo de tres meses. En el gráfico, cada barra representa la frecuencia de domicilios que recibieron cierta cantidad de entregas.

Podemos observar que la mayoría de los domicilios recibieron dos entregas, lo que se refleja en la mayor altura de esa barra. Sin embargo, también se registran casos con más entregas, aunque en menor frecuencia, disminuyendo progresivamente a medida que aumenta el número de entregas por domicilio. En algunos casos excepcionales, se registraron más de X entregas en el mismo domicilio, lo que sugiere que ciertos clientes tienen una mayor recurrencia en los pedidos. Este análisis permite identificar tanto los patrones de entrega más comunes como los casos atípicos con entregas inusualmente altas.

El análisis mostrado utiliza el algoritmo de K-means para agrupar las entregas por su localidad y cercanía geográfica en la ciudad de Buenos Aires. El propósito de aplicar este tipo de clustering es identificar zonas de entrega de manera más eficiente y precisa, evitando segmentaciones arbitrarias como barrios o comunas, que podrían no reflejar de manera realista los patrones de distribución.

Este gráfico nos ayuda a comprender el número de clusters utilizados en el análisis de K-means como la distribución geográfica de los mismos en el área de Buenos Aires.

Para determinar la cantidad óptima de clusters (K) que mejor agrupe los puntos de entrega, se aplicó el método del codo. Este método mide la suma de cuadrados dentro del cluster (WSS), que indica cuán compactos son los grupos formados. El gráfico muestra que a medida que aumenta el número de clusters, el WSS disminuye, lo que significa que los grupos son cada vez más específicos. Sin embargo, a partir de K = 4, la reducción adicional en WSS es menor, formando un “codo”. Por eso, seleccionamos 4 clusters como el número óptimo para este análisis.

4.0.1 Interpretación del Mapa y los Clusters

En el mapa, los puntos de entrega están agrupados en cuatro clusters, cada uno representado por un color diferente. Esta división refleja de manera efectiva las zonas donde se concentran las entregas:

  • Zona Norte: Agrupa entregas hacia localidades como Vicente López y San Isidro.

  • Zona Sur: Incluye áreas como Lanús, Avellaneda y alrededores.

  • Zona Oeste: Abarca lugares como Morón y La Matanza.

  • Zona Este: Se concentra cerca de la Ciudad Autónoma de Buenos Aires, incluyendo zonas cercanas al Río de la Plata.

Estos clusters permiten visualizar de forma más clara las áreas donde se realizan las entregas, facilitando la identificación de patrones geográficos importantes, como zonas con alta demanda. Esta información es útil para optimizar rutas de distribución, gestionar inventarios de forma localizada y mejorar la eficiencia operativa. Además, es posible notar que los grupos coinciden con divisiones lógicas de la ciudad (norte, sur, este y oeste), lo que respalda la validez de los clusters formados.

Este enfoque basado en K-means nos permite tomar decisiones basadas en datos y adaptadas a la geografía real de las entregas, en lugar de depender de límites administrativos que podrían no reflejar los verdaderos patrones de distribución.

Este gráfico permite la visualización de cuántas entregas se han realizado en cada cluster, mostrando la cantidad de entregas en un gráfico de barras. Las barras están ordenadas de mayor a menor, lo que facilita ver rápidamente en qué clusters hay más actividad

Este mapa permite la visualización de las áreas cubiertas por cada cluster en Buenos Aires, utilizando envolventes convexos para representar la extensión de cada grupo de entregas. En él, se muestran los puntos de datos de las entregas, coloreados según su cluster, lo que facilita identificar visualmente la distribución geográfica.

Este gráfico de barras muestra la cantidad de entregas realizadas por día de la semana, segmentadas por clusters geográficos. Cada barra representa el número de entregas realizadas en un día específico, y los diferentes colores identifican los clusters. Las barras están agrupadas en modo “dodge”, lo que facilita comparar las entregas entre clusters para cada día.

4.0.1.1 Patrones Observados:

  • Los días con mayor cantidad de entregas son martes y miércoles, especialmente en el cluster 3 (color verde).

  • El cluster 2 (azul) tiene un comportamiento más uniforme a lo largo de la semana, sin días con picos destacados.

  • Los clusters 1 (rojo) y 4 (púrpura) muestran menor volumen de entregas en comparación, pero con actividad significativa los lunes y viernes.

  • Los días sábado también presentan un nivel de entregas importante, pero más distribuido entre los clusters.

Este gráfico ayuda a visualizar cómo se distribuyen las entregas durante la semana en las distintas zonas geográficas, permitiendo identificar picos de actividad por día y cluster, lo cual puede ser útil para planificar recursos logísticos y optimizar rutas de entrega.

Este gráfico de barras muestra la cantidad de entregas por cluster geográfico para los dos clientes, 20 y 70. Las barras están agrupadas para facilitar la comparación entre los clientes en cada cluster.

Se observa que el cliente 70 no tiene entregas registradas en el Cluster 1, mientras que el cliente 20 presenta entregas en todos los clusters. El Cluster 2 es donde se concentra el mayor número de entregas para ambos clientes, destacando un volumen particularmente alto para el cliente 20.

5 Análisis de series temporales

Tenemos 4 grandes caidas en las entregas por lo que buscamos identificar el motivo en cada fecha.

Fecha Cantidad de entregas Motivo
Jueves 9 de mayo 0 FNTC (Camioneros) adhiere al paro general del 9 de mayo*.
Jueves 20 de junio 138 Feriado nacional* Paso a la Inmortalidad del Gral. Manuel Belgrano
Domingo 21 de julio 3 Como explicamos anteriormente , según nuestros datos iflow no realizan entregas los domingos.
2 de agosto 11 Por simplicidad asumimos que se debe a falta de datos en la fecha para comparir el dataset.

Para realizar un pronóstico de demanda para el mes de agosto vamos no vamos a tomar en cuenta estos 4 casos asumiendolos como irrelevantes para el modelo. Limitando los datos hasta el 30 de julio

Con los datos ordenados ahora podemos descomponer la serie temporal en tendencia, estacionalidad y residuales.

Con esta descomposición de la serie temporal, podemos analizar los siguientes aspectos clave:

  1. Serie original (Data): Nos muestra los valores reales a lo largo del tiempo, permitiendo visualizar los cambios y fluctuaciones en los datos.

  2. Componente estacional (Seasonal): Identifica los patrones repetitivos que ocurren en intervalos regulares, como ciclos mensuales o semanales. Este componente es útil para detectar estacionalidad, lo que puede ayudar a prever comportamientos futuros basados en estos ciclos.

  3. Tendencia (Trend): Nos indica si los datos siguen una dirección general creciente, decreciente o estable a lo largo del tiempo. La tendencia es esencial para evaluar el comportamiento a largo plazo y detectar cambios estructurales.

  4. Residuo (Remainder): Muestra las variaciones o anomalías que no se explican por la estacionalidad ni la tendencia. Este componente permite identificar eventos atípicos o ruido aleatorio que afecta los datos.

Esta descomposición permite entender los patrones subyacentes de la serie temporal, facilitando un análisis más preciso. Podemos, por ejemplo, diferenciar entre fluctuaciones temporales (estacionales) y cambios estructurales (tendencias), y evaluar la magnitud del ruido o error para mejorar modelos de predicción.

Series: train_ts 
ARIMA(1,0,1) with non-zero mean 

Coefficients:
          ar1     ma1      mean
      -0.5190  0.7919  380.8660
s.e.   0.2562  0.1729    9.5105

sigma^2 = 3140:  log likelihood = -243.59
AIC=495.19   AICc=496.19   BIC=502.41
Series: train_ts 
ARIMA(1,1,1) 

Coefficients:
         ar1      ma1
      0.2272  -1.0000
s.e.  0.1542   0.0654

sigma^2 = 3337:  log likelihood = -241.57
AIC=489.14   AICc=489.74   BIC=494.5
Errores ARIMA(1,0,1):
 MAE: 37.44719 
 RMSE: 44.1846 
Errores ARIMA(1,1,1):
 MAE: 36.75162 
 RMSE: 43.85659 

6 Unidades de Transporte

En los datos proporcionados no contamos con la información necesaria para realizar un análisis específico de las unidades de transporte, ya que sería indispensable disponer de un identificador único para cada vehículo. Sin embargo, incluimos esta sección como prueba de concepto para demostrar el valor que podría generar este tipo de análisis en la operación logística. Disponer de esta información permitiría evaluar aspectos fundamentales de la gestión de la flota, optimización de rutas y eficiencia operativa.

Enumeramos algunos análisis posibles con la información de los camiones, unidades de transporte.

  1. Optimización de Rutas: Identificar las rutas más eficientes y reducir viajes innecesarios para minimizar costos y tiempo de entrega.
  1. Utilización de la Flota: Evaluar el uso real de cada vehículo para detectar capacidad ociosa y ajustar la cantidad de unidades necesarias.

  2. Desempeño Operativo: Medir tiempos activos (entregas) versus tiempos inactivos (espera o mantenimiento) para mejorar la eficiencia y planificación.

Algunos analisis que realizamos como prueba de concepto..

Primero identificamos la ubicacion de las sedes de Iflow y las comparamos con la primera entrega de cada día para entender si existe algún patron con respecto al orden de las entregas.

Luego graficamos la primera y segunda entrega de cada día. Esperaríamos que estos valores se encuentren en pares, muy cercanos entre si.

En este gráfico en el cual visualizamos los puntos de la primer y segunda entrega del día, encontramos cercanías entre los puntos azules (1er entrega del día) respecto a los puntos rojos (2da entrega del día) lo cual nos hace suponer que realizan las entregas de acuerdo a la cercanía con una ubicación específica.

Luego, tomando como referencia la fecha 2024-05-23, graficamos las primeras 20 entregas de ese día y las conectamos en orden cronológico.

Esto nos permite identificar algunos patrones.

Los camiones no llevan productos de distintos clientes, lleva o productos del cliente 20 o del 70.

Existen distintos camiones que podrian ser identificados gracias a las grandes distancias entre entregas con muy poco tiempo de diferencia.

En donde se realizan cruces de lineas podemos identificar rutas mal optimizadas.

6.1 Intentos de identificar transportistas.

A priori y para facilitar el análisis podríamos suponer que las entregas las realizan dos camiones. Uno para cada cliente. Podemos validar que esto es incorrecto al estudiar las entregas de un único cliente.

Vemos que entre la entrega 18 y 19 pasaron menos de 3min

Hay algunos casos donde podemos identificar camiones distintos:

  • Grandes distancias en poco tiempo.

  • Cruces de rutas.

Los cruces de trayectorias podrían indicar rutas ineficientes de los repartidores o que se estan siguiendo varios repartidores en la misma ruta. Podemos verlo de forma clara en el siguiente gráfico:

Habiendo identificado estas caracteristicas podríamos utilizar un modelo de agrupamiento para estimar distintos repartidores y sus trayectorias.

Esto tiene un gran valor para:

  1. Identificar rutas ineficientes.
  2. Estimar un tiempo de duración de cada entrega (Y rellenar vacios)
  3. Identificar patrones en los errores de carga de datos (Duración de entregas)

Para la aplicación practica de estos analisis sería vital tener acceso real a los camiones o repartidores responsables de cada entrega pero para el bien de este analisis intentamos aproximar lo más posible a estos datos utilizando modelos estadisticos. Esperamos sirva como prueba de concepto para evaluar el potencial de recolectar estos datos.

Esto nos presenta un problema que podría solucionarse con coloración de grafos.

Construir el grafo de conflictos:

  • Nodos: Cada nodo representa una entrega individual con su respectiva latitud, longitud, fecha y hora.

  • Aristas (conflictos): Se dibuja una arista entre dos entregas si es imposible que hayan sido realizadas por el mismo repartidor debido a restricciones de tiempo y distancia.

    • Criterio de conflicto: Para dos entregas AAA y BBB, se calcula el tiempo mínimo necesario para que un repartidor viaje desde la ubicación de AAA a BBB considerando una velocidad razonable (por ejemplo, la velocidad promedio de un vehículo en esa área).

    • Si el tiempo transcurrido entre la hora de entrega de AAA y BBB es menor que el tiempo mínimo de viaje calculado, entonces se establece un conflicto entre AAA y BBB.

Algoritmos sugeridos:

  • Algoritmo Greedy de coloreo: Un enfoque sencillo que asigna colores a los nodos de forma secuencial, utilizando el menor número de colores posible en cada paso.

  • Heurísticas avanzadas: Si el grafo es grande y complejo, pueden emplearse algoritmos como DSATUR o técnicas metaheurísticas (algoritmos genéticos, recocido simulado) para aproximar una solución cercana al mínimo número de colores.

Algunos resultados obtenidos utilizando el algoritmo Greedy de coloreo con python:

Si bien funciona correctamente para alrededor de 20 entregas a medida que agregamos datos se dificulta el algoritmo y considerando las incosistencias de los datos y errores de carga no sería adecuado estimar usando este algoritmo en su estado actual.

Algunas consideraciones.

  • Toma en cuenta una velocidad promedio de los camiones arbitraira

Si bien podría ser interesante utilizar un algoritmo para resolver o estimar el problema. Evidentmente la mejor solución es tomar los datos de UNIGIS o un software automatico. De todas formas no se podrá extraer valor real con datos de tiempo erroneos.

Esta estimación nos presenta algunas preguntas sobre factores de las entregas.

  1. Rutas optimizadas.

    Gracias al análisis podemos ver que las rutas estan optimizadas pero parecen estar diseñadas para transportistas individuales y no para la flota como grupo. Optimizar las rutas de entregas para toda la flota como un ente es distinto a diseñar la ruta para cada camion entre dos puntos.

7 Apéndice

Enlace al repositorio de github https://github.com/LorennMarque/iflow